package com.ktgj.customer.mapper;

import java.util.List;

import com.ktgj.customer.domain.CommonAddresses;
import com.ktgj.customer.domain.CommonPassenger;
import com.ktgj.customer.domain.CommonTravelers;
import com.ktgj.customer.domain.Nation;
import com.ktgj.customer.domain.back.CommonTravelersBack;
import com.ktgj.customer.domain.vo.CommonTravelersDto;
import com.ktgj.customer.domain.vo.CommonTravelersDtos;
import org.apache.ibatis.annotations.Param;

/**
 * 常用旅客信息Mapper接口
 * 
 * @author ruoyi
 * @date 2021-09-01
 */
public interface CommonTravelersMapper 
{
    /**
     * 查询常用旅客信息
     * 
     * @param commonTrvelersId 常用旅客信息ID
     * @return 常用旅客信息
     */
    public CommonTravelers selectCommonTravelersById(Long commonTrvelersId);

    /**
     * 查询常用旅客信息列表
     * 
     * @param commonTravelers 常用旅客信息
     * @return 常用旅客信息集合
     */
    public List<CommonTravelers> selectCommonTravelersList(CommonTravelers commonTravelers);

    /**
     * 新增常用旅客信息
     * 
     * @param commonTravelers 常用旅客信息
     * @return 结果
     */
    public int insertCommonTravelers(CommonTravelers commonTravelers);

    /**
     * 修改常用旅客信息
     * 
     * @param commonTravelers 常用旅客信息
     * @return 结果
     */
    public int updateCommonTravelers(CommonTravelers commonTravelers);

    /**
     * 删除常用旅客信息
     * 
     * @param commonTrvelersId 常用旅客信息ID
     * @return 结果
     */
    public int deleteCommonTravelersById(Long commonTrvelersId);

    /**
     * 批量删除常用旅客信息
     * 
     * @param commonTrvelersIds 需要删除的数据ID
     * @return 结果
     */
    public int deleteCommonTravelersByIds(Long[] commonTrvelersIds);

    /**
     * 新增旅客信息
     * */
    public int insertCommonTravelersByMemberId(CommonTravelersDtos commonTravelersDtos);

    /**
     * 修改旅客信息
     * */
    public int updateCommonTravelersByMemberId(CommonTravelers commonTravelers);

    /**
     * 根据会员ID查询旅客信息
     * */
    public List<CommonTravelers> selectCommonTravelersByMemberId(Long memberId);

    /**
     * 更新默认状态
     * */
    public int updateCommonTravelersByWhetherTravelerInformation(CommonTravelers commonTravelers);

    CommonTravelersDto queryByCustomerIdCommon(Long customerId);

    public List<CommonPassenger> queryPassengerByCustomerId(@Param("customerId") Long customerId,
                                                            @Param("commonTrvelersId") Long commonTrvelersId,
                                                            @Param("certificateType") String certificateType);

    /**
     * 查询待编辑的常用旅客信息
     * */
    public CommonTravelers selectPassengerInformation(Long commonTrvelersId);

    /**
     * 删除常用旅客信息
     * */
    public int tombstone(@Param("commonTrvelersId") Long commonTrvelersId,
                         @Param("memberId") Long memberId);

    /**
     * 旅客列表
     * @param customerId
     * @return
     */
    public List<CommonTravelers> queryCommonTravelersList(Long customerId);

    /**
     * 查询国家列表
     * @return
     */
    public List<Nation> selectNationList();

    /**
     * 火车票-乘车人列表
     * */
    public List<CommonTravelers> passengerList(Long memberId);

    /**
     * 机票-乘客列表
     * */
    public List<CommonTravelers> travelersList(Long memberId);

    /**
     * 火车票-乘车人详细信息
     * */
    public CommonTravelers passengerDetails(Long commonTrvelersId);

    /**
     * 火车票-修改乘车人信息
     * */
    public int updatepassenger(CommonTravelers commonTravelers);

    /**
     * 后端——查询常用旅客信息
     * */
    public List<CommonTravelers> backSelectCommonTravelersBack(Long customerId);

    /**
     * 后端——新增常用旅客信息
     * */
    public int backInsertCommonTravelers(CommonTravelers commonTravelers);

    /**
     * 后端——修改常用旅客信息
     * */
    public int backUpdateCommonTravelers(CommonTravelers commonTravelers);

    /**
     * 后端——删除常用旅客信息
     * */
    public int backDeleteCommonTravelers(Long commonTrvelersId);

    /**
     * 后端——查询待修改的旅客信息
     * */
    public CommonTravelers backSelectTravelerById(Long commonTrvelersId);
}
